package com.lijiayue.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("心理健康项目 API 文档")
                        .version("1.0.0")
                        .description("接口调试平台（支持 token 登录验证）")
                )
                // ✅ 全局开启安全认证
                .addSecurityItem(new SecurityRequirement().addList("APIKEY")) // 名称要与下方一致
                .components(new io.swagger.v3.oas.models.Components()
                        // ✅ 定义 API Key 认证
                        .addSecuritySchemes("APIKEY", new SecurityScheme()
                                .type(SecurityScheme.Type.APIKEY)   // 使用 API Key 认证方式
                                .in(SecurityScheme.In.HEADER)       // 从 header 传入
                                .name("token")                      // 与后端拦截器中使用的一致
                                .description("请输入登录后返回的 token（无需 Bearer 前缀）")
                        )
                );
    }
}
